this zip should contain - 
mapsheet.bmp and
mapsheet.spt (by TheChemist)

_maplib.zes,
_mapitem#.zes, and
_compassitem#.zes (by Satanman)

The map and compass use the parameter (the # sign) to tell which dungeon it's used for.

These weren't simple for me (satanman) to make, and they're not incredibly simple to use.
'Installation'
1)put TheChemists files in \spritesheets in the QD's folder, and load mapsheet.spt in the graphics manager.
2)put my scripts in \scripts in the QD's folder, and load them in the entity manager.
3)add this line to your quests main script:
	CallFunction("_maplib", false, "HandleMap", "NULL");
4)open up _maplib.zes and scroll to the bottom, look at the function InitDungeon1()
5)edit it like this:
using this line, put 'true' on all floors that exist in your map (first is floor 4, second floor 3, third floor 2, and so-on until basement 4)
	FloorExist = {false, false, false, false, false, false, false, false};

on these lines, and there are a lot, map out your map, different features have different numbers. Add the numbers together, and put the result in the grid cell you want (may take a while to get the hang of it)
each line represents a row of 10 8x8 cells, and there are 10 per floor. work it out.
	Floor4Layout[0] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
the meaning of the different values are:

	(0) 1 = entrance
	(1) 2 = south wall stairs 
	(2) 4 = north wall stairs
	(3) 8 = 6x6 small rooms
	(4) 16 = 7x7 bottom-left corner of large rooms
	(5) 32 = 7x7 top-left corner of large rooms
	(6) 64 = 7x7 bottom-right corner of large rooms
	(7) 128 = 7x7 top-right corner of large rooms
	(8) 256 = 8x8 whole-unit
	(9) 512 = 2x5 north-pointing - for doors, T-junctions, + junctions, passage corners, dead ends, etc
	(10) 1024 = 2x5 east-pointing - for doors, T-junctions, + junctions, passage corners, dead ends, etc
	(11) 2048 = 2x5 south-pointing - for doors, T-junctions, + junctions, passage corners, dead ends, etc
	(12) 4096 = 2x5 west-pointing - for doors, T-junctions, + junctions, passage corners, dead ends, etc
	(13) 8192 = has been explored 
	(14) 16384 = currently unused
	(15) 32768 = currently unused
	(16) 65536 = currently unused
	(17) 131072 = currently unused
	(18) 262144 = currently unused
	(19) 524288 = currently unused
	(20) 1048576 = currently unused
	(21) 2097152 = currently unused
	(22) 4194304 = currently unused
	(23) 8388608 = currently unused
	(24) 16777216 = currently unused
	(25) 33554432 = currently unused
	(26) 67108864 = currently unused
	(27) 134217728 = currently unused
	(28) 268435456 = currently unused
	(29) 536870912 = currently unused
	(30) 1073741824 = currently unused
	(31) 2147483648 = currently unused - aren't you glad? :)
	It's reccommended you map it out in a spreadsheet program (doesn't matter which one) first, then move it into the function
 
Call this function on the entrance to your dungeon.
	CallFunction("_maplib", false, "InitDungeon1", "NULL");
And this one apon exit:
	CallFunction("_maplib", false, "ClearDungeonMap", "NULL");


The co-ordinates for the following functions (and the unmentioned ones in InitDungeon1()) are in 3D x, y, z, where the point (0, 0, 0) is the top-left room of the 4th floor.

This Function must be called on EVERY screen in your dungeon. Sorry, it just has to be :(
	CallFunction("_maplib", false, "SetPlayerPosition", "nnn", x, y, z);
These functions can change the positions on the map of the levels big chest and boss respectively
	CallFunction("_maplib", false, "SetBigChestRoom", "nnn", x, y, z);
	CallFunction("_maplib", false, "SetBossRoom", "nnn", x, y, z);

If you want, at any time, to change a rooms appearence on the map, use this function:


NOTE: In no way can this map affect your dungeon, it cannot create bosses, move chests, cure cancer, or ward off your local 'who wants to be a millionaire' host. It is merely an aid to people venturing into your dungeons.

This map supports up to 4 above ground floors, 4 subterrainian floors, and up to 10x10 floors and up to 9 dungeons.